package com.yuandian.customer.perception.mapper;

import com.yuandian.api.customer_perception.po.BasePortraitParams;
import com.yuandian.api.customer_perception.vo.MatterProcessCountTop5VO;
import com.yuandian.api.customer_perception.vo.MenuVisitCountTop5;
import com.yuandian.api.customer_perception.vo.OperatorActiveTrendVo;
import com.yuandian.api.customer_perception.vo.TimeConsumingTop5;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 单位画像
 *
 * @author lixin
 * @since 2022-04-24
 */
@Mapper
public interface UserPortraitMapper {



    /**
     * 用户画像-操作员菜单访问量排行(TOP5)
     */
    List<MenuVisitCountTop5> queryMenuVisitCountTop5(@Param("params") BasePortraitParams params);

    /**
     * 用户画像-操作员事项受理量排行(TOP5)
     */
    List<MatterProcessCountTop5VO> queryUserOperatorProcessCountTop5(@Param("params") BasePortraitParams params,
																	 @Param("itemChangeTable") String itemChangeTable);

    /**
     * 单位画像-用户事项办理排行(TOP5)
     */
    List<MatterProcessCountTop5VO> queryMattertatisticsTop5(@Param("params") BasePortraitParams params,
                                                            @Param("itemChangeTable") String itemChangeTable);

    /**
     * 用户画像-事项平均最长空闲时长排行(TOP5)
     */
    List<TimeConsumingTop5> queryMatterByLongestFreeTimeTop5(@Param("params") BasePortraitParams params,
															 @Param("itemChangeTable") String itemChangeTable);

    /**
     * 用户画像-事项平均最短空闲时长排行(TOP5)
     */
    List<TimeConsumingTop5> queryMatterByShortestFreeTimeTop5(@Param("params") BasePortraitParams params,
                                                              @Param("itemChangeTable") String itemChangeTable);

    /**
     * 用户画像-事项平均办理时长最长排行(TOP5)
     */
    List<TimeConsumingTop5> queryMatterByLongestProcessTimeTop5(@Param("params") BasePortraitParams params,
                                                                @Param("itemChangeTable") String itemChangeTable);

    /**
     * 用户画像-事项平均办理时长最短排行(TOP5)
     */
    List<TimeConsumingTop5> queryMatterByShortestProcessTimeTop5(@Param("params") BasePortraitParams params,
                                                                 @Param("itemChangeTable") String itemChangeTable);

	/**
	 * 用户画像-访问量、处理时长趋势数据
	 */
    List<OperatorActiveTrendVo> queryVisitAndDealTimeTrend(@Param("params") BasePortraitParams params);

}
